Enseignement en modèle linéaire, Machine Learning et Deep Learning
Le poste était situé à SupAgro, l'Institut Agro de Montpellier, de janvier 2025 à août 2025. Les enjeux principaux étaient liés à l'enseignement et à la pédagogie en data science pour des ingénieurs en agronomie (niveau master). Les enjeux secondaires comprenaient le renforcement des compétences du laboratoire en pratiques et méthodologies de deep learning, ainsi que la mise en place de solutions techniques pour faciliter la transition entre le langage R, largement utilisé dans la recherche en statistique, et Python. Une application de ces méthodes sur des données de type spectroscopie proche infrarouge (NIR) en 1-D était également prévue.
J'étais impliqué au sein du laboratoire MISTEA, dans le parcours Data Manager UE3 de SupAgro.
Tâches & Objectifs
Mon rôle comprenait plusieurs responsabilités :
- Enseignement : Assurer des cours et un suivi pour les matières de statistique, régression linéaire et statistique spatiale, pour les étudiants manquant les prérequis pour suivre le cours général.
- Enseignement : Créer du matériel pédagogique en data science, plus particulièrement autour du deep learning, avec application sur des données de spectre NIR.
- Communauté scientifique : Documenter, créer des packages et des méthodes pour faciliter la transition entre R et Python. L'objectif était de fournir les "mêmes outils" que ceux proposés par l'environnement R pour créer des ressources, et simplifier la traduction, lorsque possible, des ressources RMarkdown en Jupyter Notebook (génération de HTML, PDF).
Les objectifs à atteindre étaient :
- Assurer les cours et le suivi pour la matière de régression linéaire et géospatiale en soutien.
- Créer du matériel pédagogique (pratique de la régression et classification) pour le deep learning (et les algorithmes PLS (Partial Least Squares) et Random Forest de Machine Learning).
- Faire monter en compétence le laboratoire MISTEA sur l'utilisation de Python et des LLMs (Large Language Models).
Les critères de réussite étaient :
- Assurer les cours.
- Produire du matériel pédagogique réutilisable.
- Améliorer la compréhension et l'utilisation de Python au sein du laboratoire.
- Illustrer comment l'utilisation des LLMs peut aider les scientifiques à avancer plus rapidement, au moins sur la partie code.
Actions et Développement
J'ai assuré les cours et animé les deux matières sur lesquelles j'étais présent. J'ai créé deux Jupyter Notebooks détaillés appliqués sur des données NIR, incluant l'organisation de code et les bonnes pratiques de développement. J'ai également créé une méthodologie et un package pour faciliter la transition de RMarkdown vers Jupyter Notebook (en Python). Une partie de ce travail consistait en du code et une interface en ligne de commande (CLI) pour l'utilisation des Jupyter Notebooks en .py (et non .ipynb), afin de faciliter l'utilisation des LLMs pour la tâche de traduction assistée. L'autre partie concernait la configuration et la personnalisation du CLI jupyter nbconvert pour générer des ressources.
Les étapes suivies incluaient le contact avec plusieurs équipes de recherche locales spécialisées dans le sujet, la réalisation des algorithmes de Machine Learning du milieu (PLS, Random Forest et SVM), et le développement de modèles de deep learning avec PyTorch, allant du perceptron aux modèles plus complexes comme les CNN (Convolutional Neural Networks). Ensuite, j'ai assuré les enseignements pendant un peu plus d'un mois. Actuellement, je finalise le matériel pédagogique et prépare la méthodologie et le package (R => Python, bonnes pratiques pour les LLMs, etc.) pour les présenter à la communauté scientifique du laboratoire lors de séminaires, avec un livrable.
J'ai travaillé sous la supervision pédagogique de Bénédicte Fontez et Philippe Vismara. Pour les statistiques, j'assurais le soutien de Meili Baragatti. J'ai eu des échanges avec plusieurs laboratoires spécialisés en données NIR, dont l'UMR AMAP de l'IRD (Institut de Recherche pour le Développement), et un laboratoire spécialisé dans l'utilisation de méthodes de deep learning sur ces données au CIRAD (Centre de Coopération Internationale en Recherche Agronomique pour le Développement) avec Gregory Beurier (gregory.beurier@cirad.fr) et Denis Cornet (denis.cornet@cirad.fr). J'ai également eu d'autres interactions en interne, sur le campus.
Les défis rencontrés incluaient le fait que, bien que proche de la data science depuis de nombreuses années (participation à des groupes de recherche/travail et cours prodigués en reinforcement learning à Epitech), je n'avais pas eu l'occasion d'approfondir le sujet du deep learning sur des problématiques réelles. Les cours en statistique m'ont permis de revoir des connaissances que je n'avais pas activement utilisées depuis plusieurs années.
Pour le travail principal autour du deep learning, je suis parti d'une approche relativement naïve, en commençant par les algorithmes de Machine Learning standard sur les données NIR. J'ai ensuite été le plus méthodique et impartial possible, en plaçant les résultats des modèles sur les données au cœur des décisions. En 1D, il n'est pas du tout évident que les modèles de deep learning donnent des résultats significativement meilleurs que les algorithmes "traditionnels", sans parler de leur explicabilité.
Résultats
Les ressources pédagogiques fournies seront réutilisées l'année prochaine, et les interactions sur les plans pédagogique et scientifique ont été très positives. Il est un peu tôt pour réellement mesurer l'impact pédagogique, car ce n'est que la deuxième année de ce cours de deep learning, et la première où j'y participe. On peut toutefois remarquer l'influence de l'utilisation de l'IA générative pour le code rendu, et comment les étudiants la prennent en main : ils peuvent se laisser complètement guider sans maîtrise, ce qui n'est pas bon, ou prendre rapidement les rênes pour prendre du recul sur le contenu scientifique.
Comme souvent en enseignement, on en retire autant, sinon plus, que l'on donne. Ici, je suis extrêmement ravi d'avoir eu l'occasion d'exercer de la data science sur une mission à moyen terme. Cela m'a permis de gagner beaucoup de recul et de pratique sur le deep learning, de rafraîchir et clarifier les notions et algorithmes de statistique, et d'avoir pu pratiquer l'utilisation des LLMs dans le contexte de la data science (en opposition au développement d'applications web, dans mon cas).
Stack technique
Les technologies et outils utilisés étaient principalement Python, avec les bibliothèques standard pour la data science (PyTorch, scikit-learn, NumPy, Pandas, Matplotlib et Seaborn). Ces outils ont été choisis car ils représentent l'état de l'art pour le deep learning.